草庐IT

JavaScript setTimeout 无法访问函数变量

全部标签

javascript - jquery.each 函数是否有可能不破坏 'this' 变量?

所以如果变量“this”当前被设置为一个对象,{name:"Theoldthis"}下面的代码会在循环中改变它vararray=[1,2,3];$.each(array,function(i,e){alert(this.name);});不会找到this.name,而是在循环执行期间将变量“this”设置为与“e”相同是否可以让jquery不破坏$.each循环中的this变量? 最佳答案 如果您使用native.forEach而不是$.each,您可以通过发送第二个回调来设置回调的this值争论...array.forEach(f

javascript - .split() 在 IE8 中无法正常工作

我正在使用以下内容从变量中包含的URL中提取变量。它在现代浏览器中运行良好,但在IE8中,它在第一个变量上失败但在第二个变量上成功。varp='http://sagensundesign.com?height=400&width=300';/*GetHeight*/varh=p.split(/height=([0-9]+)/);h=h[1];if(!h){h=500};alert(h);/*GetWidth*/varw=p.split(/width=([0-9]+)/);w=w[1];if(!w){w=800};alert(w);更新:这是工作解决方案...http://jsfiddl

JavaScript(初级)Kata - 使用函数构建计算器

我正在解决以下问题:编写一个程序,将单词“sum”、“product”、“mean”或“sqrt”中的一个作为第一个参数,进一步的参数是一系列数字。该程序将适当的功能应用于该系列。我已经解决了它(下面的代码),但它体积庞大且效率低下。我希望重新编写它,使其具有调用其他函数(即函数sum、函数product)的单个函数calculator。我的问题:我如何编写函数sum、product、sqrt等,以便在函数计算器调用时,它们正确地接受计算器的参数并计算数学。下面是庞大的代码:functioncalculator(){varsumTotal=0;varproductTotal=1;var

javascript - 无法发布到 github v3 API

我正在尝试通过javascript创建公共(public)要点。我没有使用任何身份验证-这都是客户端。vargist={"description":"test","public":true,"files":{"test.txt":{"content":"contents"}}};$.post('https://api.github.com/gists',gist,function(data){});以上代码抛出400:错误请求-解析JSON时出现问题。但是,我的JSON是有效的。有什么想法吗? 最佳答案 啊哈-我无法将对象传递给$.

javascript - 在 for 循环中使用现有变量

是否可以从for循环中省略变量赋值并执行类似这样的操作......?otherVar=3;for(otherVar>0;otherVar--){stuff} 最佳答案 是的,但你需要输入分号:varotherVar=3;for(;otherVar>0;otherVar--){doStuff();} 关于javascript-在for循环中使用现有变量,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

javascript - SharePoint 初始化后执行 JavaScript 函数

我有一个自定义JS脚本,我将其加载到SharePoint中,但在SP完成其自身初始化后执行我的init方法时遇到问题。_spBodyOnLoadFunctionNames我首先尝试了“官方”方式,并在使用_spBodyOnLoadFunctionNames.push("myInitMethod");加载主体后将我的函数名称添加到已执行函数列表中,但这并不是在每个页面上都触发加载,我不能依赖它。ExecuteOrDelayUntilScriptLoaded然后我尝试使用ExecuteOrDelayUntilScriptLoaded(myInitMethod,"sp.js");函数,但它也

javascript - 如何从用户脚本访问 iframe 的 javascript?

我正在尝试使用Chrome用户脚本或Tampermonkey脚本来修改具有此结构的页面:contentuphereiframe是同源的。我需要访问iframe#main中的函数。我以为我可以使用unsafeWindow来获取它,但我总是什么也得不到,或者undefined返回。我已经尝试了很多事情:尝试在iframe中创建一个新的脚本元素,但即使使用$('frame#main').contents().append(script)或$('frame#main').contents()[0].createElement('script')window.frames["#main"].co

javascript - 使用 eval() 设置全局变量

我使用eval设置全局变量的代码无法正常工作。就好像根本没有调用赋值,但没有发生脚本错误。$(function(){setTimeout(function(){eval('varx=1;');alert(x);},0);});Clicktosee'x'当页面加载时,警报显示我所期望的;它确认x=1。但在那之后,我单击div并收到x未定义的javascript错误。如何使eval正确添加此变量?背景:上面的代码是我正在处理的项目中的一个最小重现示例,在该项目中我们必须在AJAX响应期间执行javascript代码。eval大多数时候都能正常工作,但这会导致问题。

javascript:作为对象或函数传递

我的问题很奇怪,它与我在jQuery中看到的东西有关,但到目前为止我无法重新创建它。在jQuery中你可以这样做jQuery('div').append或jQuery.ajax我正在制作的应用程序需要类似的语法,我注意到你是否使用了newlikevarthat=newfunction(){}你可以只用它来调用函数,没有(),但在某些情况下我会需要它。这是因为有些函数我需要像jQuery一样选择一个dom元素。that('[data-something="this"]').setEvent('click',functin(){})有些人会自动这样做:that.loadIt('this',

javascript - 为什么在 JS 中用匿名函数包装每个原型(prototype) "class"对象?

查看thisJScode通过DavidFowler他用一个匿名的自执行方法包装每个“类”,他在其中发送jQuery和window。我知道这是一种确保$和window实际上是您期望的全局jQuery和winndow变量的方法。但这不是有点过度保护了吗?您是否应该保护自己免受其他人更改$和window变量的影响-实际上是否有代码可以做到这一点,如果有,为什么?另外,像这样包装所有东西还有其他优势吗? 最佳答案 如果我没记错的话,除了jQuery之外,还有其他一些库使用$. 关于javascr